<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>Nginx 中文文档 - Core functionality | Docs4dev</title>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta property="og:type" content="website">
<meta property="og:title" content="Nginx 中文文档 - Core functionality">
<meta property="og:url" content="https://www.docs4dev.com/docs/zh/nginx/current/reference/ngx_core_module.html">
<meta property="og:site_name" content="Docs4dev">
<meta property="og:locale" content="zh_CN">
<meta name="twitter:card" content="Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。">
<meta name="generator" content="Docs4dev template engine">
<link rel="stylesheet" href="static/css/app.min.css">
<link rel="shortcut icon" href="https://www.docs4dev.com/static/images/favicon.ico" type="image/x-icon">
<script async="" src="static/js/js.js"></script>
<script async="" src="static/js/adsbygoogle.js" crossorigin="anonymous"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
      dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'UA-129571937-1');
  </script>
<link rel="amphtml" href="https://www.docs4dev.com/amp/docs/zh/nginx/current/reference/ngx_core_module.html">
<script type="application/ld+json">{"name":null,"headline":"Nginx 中文文档-Core functionality","inLanguage":"zh-CN","version":"current","image":"/static/icon/icon-nginx.svg","datePublished":"2021-05-20T12:51:01Z","dateCreated":"2021-05-20T12:51:01Z","dateModified":"2021-07-07T12:48:29Z","@context":"https://schema.org/","@type":"APIReference","abstract":"Nginx (engine x) 是一个高性能的HTTP和反向代理服务，也是一个IMAP/POP3/SMTP服务。"}</script>
</head>
<body>
<div class="book with-summary">
<div class="book-summary">
<div class="logo">
<a href="index.html" style="color: inherit;">
<img src="static/picture/icon-nginx.svg" style="width: 48px; height: 48px;" alt="Logo">
</a>
<b style="color: inherit; margin-left: 8px;">Nginx 中文文档</b>
</div>
<div class="item">
<div>
<label for="version">版本</label>
<select id="version" onchange="onVersionChange(this)">
<option value="current" selected="selected">current</option>
</select>
</div>
<div style="margin-top: 8px;">
<label for="language">语言</label>
<select id="language" onchange="onLangChange(this)" value="zh">
<option value="en">English</option>
<option value="zh" selected="selected">中文</option>
</select>
</div>

</div>
<div class="item menus">
<a title="Table of Contents" style="margin-right: 8px;" href="index.html">
 <i class="fa fa-chevron-left"></i>
<span style="margin-left: 2px;">返回目录</span>
</a>
</div>
<nav role="navigation" id="navigation">
<ul class="summary">
<li class="chapter"> <a href="install.html" title="Introduction"> Introduction </a>
<ul class="articles">
<li class="chapter"> <a href="install.html" title="Installing nginx"> Installing nginx </a> </li>
<li class="chapter"> <a href="configure.html" title="从源代码构建  Nginx"> 从源代码构建 Nginx </a> </li>
<li class="chapter"> <a href="beginners_guide.html" title="Beginner's Guide"> Beginner's Guide </a> </li>
<li class="chapter"> <a href="control.html" title="Controlling nginx"> Controlling nginx </a> </li>
<li class="chapter"> <a href="events.html" title="连接处理方法"> 连接处理方法 </a> </li>
<li class="chapter"> <a href="hash.html" title="设置哈希"> 设置哈希 </a> </li>
<li class="chapter"> <a href="debugging_log.html" title="调试日志"> 调试日志 </a> </li>
<li class="chapter"> <a href="syslog.html" title="记录到系统日志"> 记录到系统日志 </a> </li>
<li class="chapter"> <a href="syntax.html" title="配置文件测量单位"> 配置文件测量单位 </a> </li>
<li class="chapter"> <a href="switches.html" title="Command-line parameters"> Command-line parameters </a> </li>
<li class="chapter"> <a href="windows.html" title="Windows 版  Nginx"> Windows 版 Nginx </a> </li>
<li class="chapter"> <a href="http-request_processing.html" title="Nginx 如何处理请求"> Nginx 如何处理请求 </a> </li>
<li class="chapter"> <a href="http-server_names.html" title="Server names"> Server names </a> </li>
<li class="chapter"> <a href="http-load_balancing.html" title="使用  Nginx 作为  HTTP 负载均衡器"> 使用 Nginx 作为 HTTP 负载均衡器 </a> </li>
<li class="chapter"> <a href="http-configuring_https_servers.html" title="配置  HTTPS 服务器"> 配置 HTTPS 服务器 </a> </li>
<li class="chapter"> <a href="stream-stream_processing.html" title="Nginx 如何处理  TCP/UDP 会话"> Nginx 如何处理 TCP/UDP 会话 </a> </li>
<li class="chapter"> <a href="njs-index.html" title="用  njs 编写脚本"> 用 njs 编写脚本 </a> </li>
</ul> </li>
<li class="chapter"> <a href="howto_build_on_win32.html" title="How-To"> How-To </a>
<ul class="articles">
<li class="chapter"> <a href="howto_build_on_win32.html" title="使用  Visual C 在  Win32 平台上构建  Nginx"> 使用 Visual C 在 Win32 平台上构建 Nginx </a> </li>
<li class="chapter"> <a href="nginx_dtrace_pid_provider.html" title="使用  DTrace pid 提供程序调试  nginx"> 使用 DTrace pid 提供程序调试 nginx </a> </li>
<li class="chapter"> <a href="http-converting_rewrite_rules.html" title="转换重写规则"> 转换重写规则 </a> </li>
<li class="chapter"> <a href="http-websocket.html" title="WebSocket proxying"> WebSocket proxying </a> </li>
</ul> </li>
<li class="chapter"> <a href="contributing_changes.html" title="Development"> Development </a>
<ul class="articles">
<li class="chapter"> <a href="contributing_changes.html" title="Contributing Changes"> Contributing Changes </a> </li>
<li class="chapter"> <a href="dev-development_guide.html" title="Development guide"> Development guide </a> </li>
</ul> </li>
<li class="chapter"> <a href="dirindex.html" title="Modules reference"> Modules reference </a>
<ul class="articles">
<li class="chapter"> <a href="dirindex.html" title="指令的字母索引"> 指令的字母索引 </a> </li>
<li class="chapter"> <a href="varindex.html" title="变量按字母顺序索引"> 变量按字母顺序索引 </a> </li>
<li class="chapter"> <a href="" title="Core functionality"> Core functionality </a> </li>
<li class="chapter"> <a href="http-ngx_http_core_module.html" title="ngx_http_core_module"> ngx_http_core_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_access_module.html" title="ngx_http_access_module"> ngx_http_access_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_addition_module.html" title="ngx_http_addition_module"> ngx_http_addition_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_api_module.html" title="ngx_http_api_module"> ngx_http_api_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_basic_module.html" title="ngx_http_auth_basic_module"> ngx_http_auth_basic_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_jwt_module.html" title="ngx_http_auth_jwt_module"> ngx_http_auth_jwt_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_auth_request_module.html" title="ngx_http_auth_request_module"> ngx_http_auth_request_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_autoindex_module.html" title="ngx_http_autoindex_module"> ngx_http_autoindex_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_browser_module.html" title="ngx_http_browser_module"> ngx_http_browser_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_charset_module.html" title="ngx_http_charset_module"> ngx_http_charset_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_dav_module.html" title="ngx_http_dav_module"> ngx_http_dav_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_empty_gif_module.html" title="ngx_http_empty_gif_module"> ngx_http_empty_gif_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_f4f_module.html" title="ngx_http_f4f_module"> ngx_http_f4f_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_fastcgi_module.html" title="ngx_http_fastcgi_module"> ngx_http_fastcgi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_flv_module.html" title="ngx_http_flv_module"> ngx_http_flv_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_geo_module.html" title="ngx_http_geo_module"> ngx_http_geo_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_geoip_module.html" title="ngx_http_geoip_module"> ngx_http_geoip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_grpc_module.html" title="ngx_http_grpc_module"> ngx_http_grpc_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gunzip_module.html" title="ngx_http_gunzip_module"> ngx_http_gunzip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gzip_module.html" title="ngx_http_gzip_module"> ngx_http_gzip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_gzip_static_module.html" title="ngx_http_gzip_static_module"> ngx_http_gzip_static_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_headers_module.html" title="ngx_http_headers_module"> ngx_http_headers_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_hls_module.html" title="ngx_http_hls_module"> ngx_http_hls_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_image_filter_module.html" title="ngx_http_image_filter_module"> ngx_http_image_filter_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_index_module.html" title="ngx_http_index_module"> ngx_http_index_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_js_module.html" title="ngx_http_js_module"> ngx_http_js_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_keyval_module.html" title="ngx_http_keyval_module"> ngx_http_keyval_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_limit_conn_module.html" title="ngx_http_limit_conn_module"> ngx_http_limit_conn_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_limit_req_module.html" title="ngx_http_limit_req_module"> ngx_http_limit_req_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_log_module.html" title="ngx_http_log_module"> ngx_http_log_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_map_module.html" title="ngx_http_map_module"> ngx_http_map_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_memcached_module.html" title="ngx_http_memcached_module"> ngx_http_memcached_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_mirror_module.html" title="ngx_http_mirror_module"> ngx_http_mirror_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_mp4_module.html" title="ngx_http_mp4_module"> ngx_http_mp4_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_perl_module.html" title="ngx_http_perl_module"> ngx_http_perl_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_proxy_module.html" title="ngx_http_proxy_module"> ngx_http_proxy_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_random_index_module.html" title="ngx_http_random_index_module"> ngx_http_random_index_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_realip_module.html" title="ngx_http_realip_module"> ngx_http_realip_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_referer_module.html" title="ngx_http_referer_module"> ngx_http_referer_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_rewrite_module.html" title="ngx_http_rewrite_module"> ngx_http_rewrite_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_scgi_module.html" title="ngx_http_scgi_module"> ngx_http_scgi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_secure_link_module.html" title="ngx_http_secure_link_module"> ngx_http_secure_link_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_session_log_module.html" title="ngx_http_session_log_module"> ngx_http_session_log_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_slice_module.html" title="ngx_http_slice_module"> ngx_http_slice_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_spdy_module.html" title="ngx_http_spdy_module"> ngx_http_spdy_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_split_clients_module.html" title="ngx_http_split_clients_module"> ngx_http_split_clients_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_ssi_module.html" title="ngx_http_ssi_module"> ngx_http_ssi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_ssl_module.html" title="ngx_http_ssl_module"> ngx_http_ssl_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_status_module.html" title="ngx_http_status_module"> ngx_http_status_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_stub_status_module.html" title="ngx_http_stub_status_module"> ngx_http_stub_status_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_sub_module.html" title="ngx_http_sub_module"> ngx_http_sub_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_module.html" title="ngx_http_upstream_module"> ngx_http_upstream_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_conf_module.html" title="ngx_http_upstream_conf_module"> ngx_http_upstream_conf_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_upstream_hc_module.html" title="ngx_http_upstream_hc_module"> ngx_http_upstream_hc_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_userid_module.html" title="ngx_http_userid_module"> ngx_http_userid_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_uwsgi_module.html" title="ngx_http_uwsgi_module"> ngx_http_uwsgi_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_v2_module.html" title="ngx_http_v2_module"> ngx_http_v2_module </a> </li>
<li class="chapter"> <a href="http-ngx_http_xslt_module.html" title="ngx_http_xslt_module"> ngx_http_xslt_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_core_module.html" title="ngx_mail_core_module"> ngx_mail_core_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_auth_http_module.html" title="ngx_mail_auth_http_module"> ngx_mail_auth_http_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_proxy_module.html" title="ngx_mail_proxy_module"> ngx_mail_proxy_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_ssl_module.html" title="ngx_mail_ssl_module"> ngx_mail_ssl_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_imap_module.html" title="ngx_mail_imap_module"> ngx_mail_imap_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_pop3_module.html" title="ngx_mail_pop3_module"> ngx_mail_pop3_module </a> </li>
<li class="chapter"> <a href="mail-ngx_mail_smtp_module.html" title="ngx_mail_smtp_module"> ngx_mail_smtp_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_core_module.html" title="ngx_stream_core_module"> ngx_stream_core_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_access_module.html" title="ngx_stream_access_module"> ngx_stream_access_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_geo_module.html" title="ngx_stream_geo_module"> ngx_stream_geo_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_geoip_module.html" title="ngx_stream_geoip_module"> ngx_stream_geoip_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_js_module.html" title="ngx_stream_js_module"> ngx_stream_js_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_keyval_module.html" title="ngx_stream_keyval_module"> ngx_stream_keyval_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_limit_conn_module.html" title="ngx_stream_limit_conn_module"> ngx_stream_limit_conn_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_log_module.html" title="ngx_stream_log_module"> ngx_stream_log_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_map_module.html" title="ngx_stream_map_module"> ngx_stream_map_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_proxy_module.html" title="ngx_stream_proxy_module"> ngx_stream_proxy_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_realip_module.html" title="ngx_stream_realip_module"> ngx_stream_realip_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_return_module.html" title="ngx_stream_return_module"> ngx_stream_return_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_split_clients_module.html" title="ngx_stream_split_clients_module"> ngx_stream_split_clients_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_ssl_module.html" title="ngx_stream_ssl_module"> ngx_stream_ssl_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_ssl_preread_module.html" title="ngx_stream_ssl_preread_module"> ngx_stream_ssl_preread_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_upstream_module.html" title="ngx_stream_upstream_module"> ngx_stream_upstream_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_upstream_hc_module.html" title="ngx_stream_upstream_hc_module"> ngx_stream_upstream_hc_module </a> </li>
<li class="chapter"> <a href="stream-ngx_stream_zone_sync_module.html" title="ngx_stream_zone_sync_module"> ngx_stream_zone_sync_module </a> </li>
<li class="chapter"> <a href="ngx_google_perftools_module.html" title="ngx_google_perftools_module"> ngx_google_perftools_module </a> </li>
</ul> </li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<header class="book-header">
<div class="dropdown pull-right js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-globe"></i>
</a>
<div class="dropdown-menu dropdown-left">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('zh_CN')">中文</button>
</div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('en_US')">English</button>
</div>
</div>
</div>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign up" href="register.html">
<i class="fa fa-sign-in"></i> <span>注册</span>
</a>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign in" href="register.html">
<i class="fa fa-sign-in"></i>
<span>登录</span>
</a>
<a class="btn pull-left js-toolbar-action btn-summary" href="#"><i class="fa fa-align-justify"></i></a>
<div class="dropdown pull-left font-settings js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Font Settings" href="#">
<i class="fa fa-font"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-2 font-reduce">A</button>
<button class="button size-2 font-enlarge">A</button>
</div>
<div class="buttons">
<button class="button size-2 family-serif">Serif</button>
<button class="button size-2 family-sans">Sans</button>
</div>
<div class="buttons">
<button class="button size-3 theme-white">White</button>
<button class="button size-3 theme-sepia">Sepia</button>
<button class="button size-3 theme-night">Night</button>
</div>
</div>
</div>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
<div class="dropdown pull-left js-toolbar-action mobile">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-chevron-down"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<a class="button size-1" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
</div>
</div>
</div>
<div id="autocomplete" class="pull-right"></div>
<span id="toolbar-title"></span>
</header>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal markdown-section">
<div id="content">
<h1>Core functionality</h1>
<div><ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6108808167664152" data-ad-slot="6964403648"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<div><ul>
<li><a href="#example">Example Configuration</a></li>
<li><a href="#directives">Directives</a>
<ul>
<li><a href="#accept_mutex">accept_mutex</a></li>
<li><a href="#accept_mutex_delay">accept_mutex_delay</a></li>
<li><a href="#daemon">daemon</a></li>
<li><a href="#debug_connection">debug_connection</a></li>
<li><a href="#debug_points">debug_points</a></li>
<li><a href="#env">env</a></li>
<li><a href="#error_log">error_log</a></li>
<li><a href="#events">events</a></li>
<li><a href="#include">include</a></li>
<li><a href="#load_module">load_module</a></li>
<li><a href="#lock_file">lock_file</a></li>
<li><a href="#master_process">master_process</a></li>
<li><a href="#multi_accept">multi_accept</a></li>
<li><a href="#pcre_jit">pcre_jit</a></li>
<li><a href="#pid">pid</a></li>
<li><a href="#ssl_engine">ssl_engine</a></li>
<li><a href="#thread_pool">thread_pool</a></li>
<li><a href="#timer_resolution">timer_resolution</a></li>
<li><a href="#use">use</a></li>
<li><a href="#user">user</a></li>
<li><a href="#worker_aio_requests">worker_aio_requests</a></li>
<li><a href="#worker_connections">worker_connections</a></li>
<li><a href="#worker_cpu_affinity">worker_cpu_affinity</a></li>
<li><a href="#worker_priority">worker_priority</a></li>
<li><a href="#worker_processes">worker_processes</a></li>
<li><a href="#worker_rlimit_core">worker_rlimit_core</a></li>
<li><a href="#worker_rlimit_nofile">worker_rlimit_nofile</a></li>
<li><a href="#worker_shutdown_timeout">worker_shutdown_timeout</a></li>
<li><a href="#working_directory">working_directory</a><br><a href="" id="example"></a></li>
</ul>
</li>
</ul>
<h4 id="example-configuration"><a href="#example-configuration" id="example-configuration"></a>Example Configuration</h4>
<pre><code class="hljs language-shell">user www www;
worker_processes 2;

error_log /var/log/nginx-error.log info;

events {
    use kqueue;
    worker_connections 2048;
}

...
</code></pre>
<p><a href="" id="directives"></a></p>
<h4 id="directives"><a href="#directives" id="directives"></a>Directives</h4>
<p><a href="" id="accept_mutex"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>accept_mutex on | off;</code></td></tr>
<tr><td>Default:</td><td><code>accept_mutex off;</code></td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>如果启用了<code>accept_mutex</code>，则工作进程将依次接受新的连接。否则，将通知所有工作进程有关新连接的信息，如果新连接的数量很少，则某些工作进程可能会浪费系统资源。</p>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>在支持<a href="events.html#epoll">EPOLLEXCLUSIVE</a>标志(1.11.3)的系统上或使用<a href="http-ngx_http_core_module.html#reuseport">reuseport</a>时，无需启用<code>accept_mutex</code>。</p>
</div></div><div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>在 1.11.3 版之前，默认值为<code>on</code>。</p>
</div></div>
<p><a href="" id="accept_mutex_delay"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>accept_mutex_delay time;</code></td></tr>
<tr><td>Default:</td><td><code>accept_mutex_delay 500ms;</code></td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>如果启用了<a href="#accept_mutex">accept_mutex</a>，则指定在另一个工作进程当前正在接受新连接的情况下，工作进程尝试重新启动接受新连接的最长时间。</p>
<p><a href="" id="daemon"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>daemon on | off;</code></td></tr>
<tr><td>Default:</td><td><code>daemon on;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>确定 nginx 是否应成为守护程序。主要在开发过程中使用。</p>
<p><a href="" id="debug_connection"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>debug_connection address | CIDR | unix:;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>为选定的客户端连接启用调试日志。其他连接将使用<a href="#error_log">error_log</a>指令设置的日志记录级别。调试连接由 IPv4 或 IPv6(1.3.0，1.2.1)地址或网络指定。也可以使用主机名指定连接。对于使用 UNIX 域套接字(1.3.0，1.2.1)的连接，调试日志通过“ <code>unix:</code>”参数启用。</p>
<pre><code class="hljs language-shell">events {
    debug_connection 127.0.0.1;
    debug_connection localhost;
    debug_connection 192.0.2.0/24;
    debug_connection ::1;
    debug_connection 2001:0db8::/32;
    debug_connection unix:;
    ...
}
</code></pre>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>为了使此指令有效，需要使用<code>--with-debug</code>构建 nginx，请参见“ <a href="debugging_log.html">调试日志</a>”。</p>
</div></div>
<p><a href="" id="debug_points"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>debug_points abort | stop;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>该伪指令用于调试。</p>
<p>当检测到内部错误时，例如重新启动工作进程时套接字的泄漏，启用<code>debug_points</code>会导致创建核心文件(<code>abort</code>)或停止进程(<code>stop</code>)，以便使用系统调试器进行进一步分析。</p>
<p><a href="" id="env"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>env variable[=value];</code></td></tr>
<tr><td>Default:</td><td><code>env TZ;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>默认情况下，nginx 会删除从其父进程继承的所有环境变量(TZ 变量除外)。该指令允许保留某些继承的变量，更改其值或创建新的环境变量。这些变量是：</p>
<ul>
<li>
<p>在可执行文件的<a href="control.html#upgrade">live upgrade</a>期间继承；</p>
</li>
<li>
<p>由<a href="http-ngx_http_perl_module.html">ngx_http_perl_module</a>模块使用；</p>
</li>
<li>
<p>由工作进程使用。应该记住的是，以这种方式控制系统库并非总是可行的，因为通常仅在初始化期间(即在使用此伪指令设置变量之前)检查变量是很常见的。exception 是上面提到的可执行文件的<a href="control.html#upgrade">live upgrade</a>。</p>
</li>
</ul>
<p>除非明确配置，否则 TZ 变量始终是继承的并且可用于<a href="http-ngx_http_perl_module.html">ngx_http_perl_module</a>模块。</p>
<p>Usage example:</p>
<pre><code class="hljs language-shell">env MALLOC_OPTIONS;
env PERL5LIB=/data/site/modules;
env OPENSSL_ALLOW_PROXY_CERTS=1;
</code></pre>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>NGINX 环境变量由 Nginx 在内部使用，不应由用户直接设置。</p>
</div></div>
<p><a href="" id="error_log"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>error_log file [level];</code></td></tr>
<tr><td>Default:</td><td><code>error_log logs/error.log error;</code></td></tr>
<tr><td>Context:</td><td><code>main</code> , <code>http</code> , <code>mail</code> , <code>stream</code> , <code>server</code> , <code>location</code></td></tr>
</tbody>
</table>
<p>配置日志记录。可以在同一级别(1.5.2)上指定多个日志。如果未在<code>main</code>配置级别上明确定义将日志写入文件，则将使用默认文件。</p>
<p>第一个参数定义一个<code>file</code>，它将存储日志。特殊值<code>stderr</code>选择标准错误文件。可以通过指定“ <code>syslog:</code>”前缀来配置登录到<a href="syslog.html">syslog</a>。可以通过指定前缀“ <code>memory:</code>”和缓冲区<code>size</code>来配置登录到<a href="debugging_log.html#memory">循环内存缓冲区</a>，通常用于调试(1.7.11)。</p>
<p>第二个参数确定日志记录<code>level</code>，并且可以是以下之一：<code>debug</code>，<code>info</code>，<code>notice</code>，<code>warn</code>，<code>error</code>，<code>crit</code>，<code>alert</code>或<code>emerg</code>。以上日志级别按严重性从高到低的顺序列出。设置某个日志级别将导致记录所有指定级别或更严重的日志级别的消息。例如，默认级别<code>error</code>将导致记录<code>error</code>，<code>crit</code>，<code>alert</code>和<code>emerg</code>消息。如果省略此参数，则使用<code>error</code>。</p>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>为使<code>debug</code>日志正常工作，需要使用<code>--with-debug</code>构建 nginx，请参阅“ <a href="debugging_log.html">调试日志</a>”。</p>
</div></div><div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>从 1.7.11 版本开始，可以在<code>stream</code>级别上指定指令；从 1.9.0 版本开始，可以在<code>mail</code>级别上指定指令。</p>
</div></div>
<p><a href="" id="events"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>events { ... }</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>提供配置文件上下文，在其中指定影响连接处理的指令。</p>
<p><a href="" id="include"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>include file | mask;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>any</code></td></tr>
</tbody>
</table>
<p>将另一个<code>file</code>或与指定的<code>mask</code>匹配的文件包含到配置中。包含的文件应包含语法正确的指令和块。</p>
<p>Usage example:</p>
<pre><code class="hljs language-shell">include mime.types;
include vhosts/*.conf;
</code></pre>
<p><a href="" id="load_module"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>load_module file;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>该指令出现在 1.9.11 版中。</p>
<p>加载动态模块。</p>
<p>Example:</p>
<pre><code class="hljs language-shell">load_module modules/ngx_mail_module.so;
</code></pre>
<p><a href="" id="lock_file"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>lock_file file;</code></td></tr>
<tr><td>Default:</td><td><code>lock_file logs/nginx.lock;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>nginx 使用锁定机制来实现<a href="#accept_mutex">accept_mutex</a>并序列化对共享内存的访问。在大多数系统上，锁是使用原子操作实现的，并且此指令将被忽略。在其他系统上，使用“锁定文件”机制。该伪指令为锁定文件的名称指定前缀。</p>
<p><a href="" id="master_process"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>master_process on | off;</code></td></tr>
<tr><td>Default:</td><td><code>master_process on;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>确定是否启动工作进程。该指令适用于 Nginx 开发人员。</p>
<p><a href="" id="multi_accept"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>multi_accept on | off;</code></td></tr>
<tr><td>Default:</td><td><code>multi_accept off;</code></td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>如果禁用了<code>multi_accept</code>，则辅助进程将一次接受一个新连接。否则，辅助进程将一次接受所有新连接。</p>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>如果使用<a href="events.html#kqueue">kqueue</a>连接处理方法，则该指令将被忽略，因为该指令报告 await 接受的新连接数。</p>
</div></div>
<p><a href="" id="pcre_jit"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>pcre_jit on | off;</code></td></tr>
<tr><td>Default:</td><td><code>pcre_jit off;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>该指令出现在版本 1.1.12 中。</p>
<p>对配置解析时已知的正则表达式启用或禁用“即时编译”(PCRE JIT)。</p>
<p>PCRE JIT 可以大大加快正则表达式的处理速度。</p>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>从使用<code>--enable-jit</code>配置参数构建的 8.20 版本开始，PCRE 库中提供了 JIT。当使用 nginx(<code>--with-pcre=</code>)构建 PCRE 库时，将通过<code>--with-pcre-jit</code>配置参数启用 JIT 支持。</p>
</div></div>
<p><a href="" id="pid"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>pid file;</code></td></tr>
<tr><td>Default:</td><td><code>pid logs/nginx.pid;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义一个<code>file</code>，它将存储主流程的流程 ID。</p>
<p><a href="" id="ssl_engine"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>ssl_engine device;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义硬件 SSL 加速器的名称。</p>
<p><a href="" id="thread_pool"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>thread_pool name threads=number [max_queue=number];</code></td></tr>
<tr><td>Default:</td><td><code>thread_pool default threads=32 max_queue=65536;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>该指令出现在 1.7.11 版本中。</p>
<p>定义用于多线程读取和发送文件<a href="http-ngx_http_core_module.html#aio">without blocking</a>工作进程的命名线程池。</p>
<p><code>threads</code>参数定义池中的线程数。</p>
<p>如果池中的所有线程都处于繁忙状态，则新任务将在队列中 await。 <code>max_queue</code>参数限制了队列中允许 await 的任务数。默认情况下，队列中最多可以 await65536 个任务。队列溢出时，任务将完成并出现错误。</p>
<p><a href="" id="timer_resolution"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>timer_resolution interval;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>降低工作进程中的计时器分辨率，从而减少进行<code>gettimeofday()</code>个系统调用的次数。默认情况下，每次接收到内核事件时都会调用<code>gettimeofday()</code>。在降低分辨率的情况下，每个指定的<code>interval</code>只调用一次<code>gettimeofday()</code>。</p>
<p>Example:</p>
<pre><code class="hljs language-shell">timer_resolution 100ms;
</code></pre>
<p>间隔的内部实现取决于所使用的方法：</p>
<ul>
<li>
<p>如果使用<code>kqueue</code>，则使用<code>EVFILT_TIMER</code>过滤器；</p>
</li>
<li>
<p><code>timer_create()</code>(如果使用了<code>eventport</code>)；</p>
</li>
<li>
<p><code>setitimer()</code>否则。</p>
</li>
</ul>
<p><a href="" id="use"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>use method;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>指定要使用的<a href="events.html">connection processing</a> <code>method</code>。通常无需显式指定它，因为默认情况下 nginx 将使用最有效的方法。</p>
<p><a href="" id="user"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>user user [group];</code></td></tr>
<tr><td>Default:</td><td><code>user nobody nobody;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义工作进程使用的<code>user</code>和<code>group</code>凭据。如果省略<code>group</code>，则使用名称等于<code>user</code>的组。</p>
<p><a href="" id="worker_aio_requests"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_aio_requests number;</code></td></tr>
<tr><td>Default:</td><td><code>worker_aio_requests 32;</code></td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>该指令出现在 1.1.4 和 1.0.7 版本中。</p>
<p>当将<a href="http-ngx_http_core_module.html#aio">aio</a>与<a href="events.html#epoll">epoll</a>连接处理方法一起使用时，请为单个工作进程设置最大<code>number</code>的未完成异步 I/O 操作。</p>
<p><a href="" id="worker_connections"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_connections number;</code></td></tr>
<tr><td>Default:</td><td><code>worker_connections 512;</code></td></tr>
<tr><td>Context:</td><td><code>events</code></td></tr>
</tbody>
</table>
<p>设置工作进程可以打开的最大同时连接数。</p>
<p>请记住，此数字包括所有连接(例如，与代理服务器的连接等)，而不仅包括与客户端的连接。另一个需要考虑的因素是，同时连接的实际数量不能超过打开文件最大数量的当前限制，可以通过<a href="#worker_rlimit_nofile">worker_rlimit_nofile</a>进行更改。</p>
<p><a href="" id="worker_cpu_affinity"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_cpu_affinity cpumask ...;</code></td></tr>
<tr><td><br><code>worker_cpu_affinity auto [cpumask];</code></td></tr>
<tr><td>默认值：</td><td>—</td></tr>
<tr><td>上下文： <code>main</code></td></tr>
</tbody>
</table>
<p>将工作进程绑定到 CPU 组。每个 CPU 集由允许的 CPU 的位掩码表示。应该为每个工作进程定义一个单独的集合。默认情况下，辅助进程未绑定到任何特定的 CPU。</p>
<p>For example,</p>
<pre><code class="hljs language-shell">worker_processes    4;
worker_cpu_affinity 0001 0010 0100 1000;
</code></pre>
<p>将每个工作进程绑定到一个单独的 CPU，同时</p>
<pre><code class="hljs language-shell">worker_processes    2;
worker_cpu_affinity 0101 1010;
</code></pre>
<p>将第一个工作进程绑定到 CPU0/CPU2，将第二个工作进程绑定到 CPU1/CPU3.第二个示例适用于超线程。</p>
<p>特殊值<code>auto</code>(1.9.10)允许将工作进程自动绑定到可用的 CPU：</p>
<pre><code class="hljs language-shell">worker_processes auto;
worker_cpu_affinity auto;
</code></pre>
<p>可选的 mask 参数可用于限制可用于自动绑定的 CPU：</p>
<pre><code class="hljs language-shell">worker_cpu_affinity auto 01010101;
</code></pre>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>该指令仅在 FreeBSD 和 Linux 上可用。</p>
</div></div>
<p><a href="" id="worker_priority"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_priority number;</code></td></tr>
<tr><td>Default:</td><td><code>worker_priority 0;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义工作进程的调度优先级，就像通过<code>nice</code>命令执行的调度一样：负<code>number</code>表示更高的优先级。允许范围通常为-20 至 20.</p>
<p>Example:</p>
<pre><code class="hljs language-shell">worker_priority -10;
</code></pre>
<p><a href="" id="worker_processes"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_processes number | auto;</code></td></tr>
<tr><td>Default:</td><td><code>worker_processes 1;</code></td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义工作进程数。</p>
<p>最佳值取决于许多因素，包括(但不限于)CPU 内核数，存储数据的硬盘驱动器数以及加载模式。如有疑问，请将其设置为可用的 CPU 内核数将是一个不错的开始(值“ <code>auto</code>”将尝试自动检测它)。</p>
<div class="alert callout info"><p class="title"><i class="fa fa-info-circle"></i>Note</p><div><p>从版本 1.3.8 和 1.2.5 开始支持<code>auto</code>参数。</p>
</div></div>
<p><a href="" id="worker_rlimit_core"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_rlimit_core size;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>更改工作进程的核心文件(<code>RLIMIT_CORE</code>)的最大大小限制。用于在不重新启动主进程的情况下增加限制。</p>
<p><a href="" id="worker_rlimit_nofile"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_rlimit_nofile number;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>更改工作进程最大打开文件数(<code>RLIMIT_NOFILE</code>)的限制。用于在不重新启动主进程的情况下增加限制。</p>
<p><a href="" id="worker_shutdown_timeout"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>worker_shutdown_timeout time;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>该指令出现在 1.11.11 版中。</p>
<p>配置超时以正常关闭工作进程。 <code>time</code>过期后，nginx 将尝试关闭当前打开的所有连接，以方便关闭。</p>
<p><a href="" id="working_directory"></a></p>
<table>
<thead></thead>
<tbody>
<tr><td>Syntax:</td><td><code>working_directory directory;</code></td></tr>
<tr><td>Default:</td><td>—</td></tr>
<tr><td>Context:</td><td><code>main</code></td></tr>
</tbody>
</table>
<p>定义工作进程的当前工作目录。它主要在编写核心文件时使用，在这种情况下，工作进程应具有对指定目录的写许可权。</p>
</div>
</div>
</section>
<div class="right-sidebar">
<div class="affix"><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6108808167664152" data-ad-slot="3102929424" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</div>
</div>
<div class="ft">
<a href="#toolbar-title" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a>
<footer class="footer">
<div class="footer__container--normal">
<img alt="扫码关注公众号" title="扫码关注公众号" src="static/picture/qr-code.png" width="170" height="170">
<div class="footer__description--normal">
<p class="paragraph footer__author--normal">Docs4dev<sup class="super">&#xAE;</sup>
</p>
<p class="paragraph footer__quote&#45;&#45;normal">
如果你在使用过程中遇到任何问题，可以在 <a href="javascript:window.open('https://github.com/docs4dev/docs4dev-issues');" target="_blank" rel="noopener noreferrer">这里<i class="fa fa-external-link"></i></a> 提issue。
</p>
<div class="footer__main--normal">
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
<a href="javascript:window.open('https://beian.miit.gov.cn/');">
蜀ICP备14021783号-6
</a>
</p>
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
Copyright &#xA9; Docs4dev all
right reserved, powered by <a href="index2.html" target="_blank">Docs4dev</a></p>
</div>
</div>
</div>
<div class="box__issues">
</div>
</footer>
</div>
</div>
</div>
</div>
</div>
<script>
  var hasToc = true;
  /*  var downloadable = /!*false*!/ false;
    var editable = /!*false*!/ false;
    var code = /!*"nginx"*!/ false;
    var version = /!*"current"*!/ false;
    var type = /!*"reference"*!/ false;
    var lang = /!*"zh"*!/ 'en';
    //edit link
    require(["gitbook", "jQuery"], function (gitbook, $) {
      gitbook.events.bind('start', function (e, config) {
        // Add edit toolbar to left
        var chapterId = /!*17701*!/ 0;
        if (downloadable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-download',
            text: '下载',
            onClick: function () {
              window.open('/download?code=' + code + '&version=' + version + '&type=' + type + '&lang=' + lang);
            }
          });
        }
        if (editable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-edit',
            text: '编辑此页',
            onClick: function () {
              window.open('/docs/edit?chapterId=' + chapterId + '&lang=' + lang);
            }
          });
        }
      });
    });*/
</script>
<script>
    var code = "nginx";
    var lang = "zh";
  </script>

<script src="static/js/autocomplete-js.js"></script>
<script src="static/js/app.min.js"></script>
<script src="static/js/search.min.js"></script>
</body>
</html>
